home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 021-030 / amok30 / m2maker / m2maker.doc < prev    next >
Text File  |  1993-11-04  |  11KB  |  324 lines

  1. ----------------------------------------------------------------
  2.  
  3. Das Programm m2Maker ist ein in Modula-2 geschriebenes Utilitie,
  4. welches besonders auf den Compiler von Meier Vogt zugeschnitten
  5. ist.
  6.  
  7. Da ich glaube, das dieses Programm vielen Programmierern eine
  8. kleine Hilfe ist, habe ich mich entschlossen es als "Shareware"
  9. zu veröffentlichen.
  10.  
  11. Das heißt, jeder darf dieses Programm kopieren, tauschen und 
  12. weiterverbreiten. Kommerzielle Vermarktung ist hiervon
  13. ausdrücklich ausgenommen.
  14.  
  15. Wem dieses Programm zusagt, kann mir einen Betrag in beliebiger
  16. Höhe (so 20 DM,- oder mehr...) auf mein Konto 
  17.  
  18.            Stadtsparkasse Hannover Nr. 14561514
  19.                                                 BLZ 250 501 80
  20.  
  21. überweisen.
  22.  
  23.                                        Thomas Stolze
  24.                                        Goslarsche Str .32
  25.  
  26.                                        3000 Hannover 21
  27.  
  28.  
  29. P.S.: Anregungen und Fehlerberichte sind immer willkommen.
  30.  
  31. Bitte diese Informationen nicht löschen.
  32.  
  33. ----------------------------------------------------------------
  34.  
  35. Die Programme Fastlister und MODULETool sind Bestandteile des 
  36. m2Maker.
  37.  
  38. Ich beabsichtige das MODULETool noch stark zu erweitern. Daher sollte
  39. das vorliegende Programm als Vorabversion verstanden werden.
  40.  
  41. ----------------------------------------------------------------
  42.  
  43.  
  44. Die Installation der Programme:
  45.  
  46. m2Maker:
  47.  
  48.  
  49. Der m2Maker muß im selben Verzeichnis liegen wie Compiler,
  50. Linker, Editor und das m2Projekt-Programm (siehe Handbuch!). 
  51. Außerdem müssen sich folgende Programme auf der Systemdiskette im
  52. c-Verzeichnis befinden:
  53.  
  54. - Run
  55. - Execute
  56. - NewShell
  57. - Copy
  58.  
  59.  
  60. Die Funktionen im einzelnen:
  61.  
  62. Die Gadgets:
  63.  
  64. Editor    - Ruft den Editor auf.
  65. Compiler  - Ruft den Compiler auf.
  66.             Wenn ein Fehler gefunden wurde wird automatisch
  67.             der Editor aufgerufen.
  68. Linker    - Ruft den Linker auf.
  69. Run       - Startet ein fertig compiliertes und gelinktes File.
  70. Make      - Ruft Compiler,Linker und Run auf. 
  71.             Tritt nach dem compilieren ein Fehler auf, so wird   
  72.             der Editor aufgerufen.
  73.  
  74. Projekt   - Wenn mann ein Projekt definiert hat (s.u.), wird 
  75.             dieses initialisiert. Jetzt werden alle Dateien,
  76.             die Editor,Compiler,Linker und Debugger erzeugen
  77.             in entsprechene Unterverzeichnisse geschrieben.
  78.             Dies hilft die Übersichtlichkeit zu erhöhen.
  79.             (Detailierte Informationen stehen im M2-Handbuch)
  80.  
  81.             Durch erneutes anklicken wird das Projekt beendet.
  82.             Wenn man ein neues Projekt beginnen möchte, muß das
  83.             alte eventuell erst beendet werden.
  84. Optionen  - Hier können die Optionen von Editor,Compiler und 
  85.             Linker gesetzt werden.
  86.             Außerdem kann hier das Verzeichnis angegeben werden  
  87.             mit dem der FastLister arbeitet.
  88.  
  89.  
  90.  
  91. Print     - Druckt die aktuelle Datei aus. Ein geeigneter
  92.             Druckertreiber muß sich aber im devs/printer Unter-
  93.             verzeichnis befinden.
  94. Copy      - Kopiert die aktuelle Datei auf das Backupmedium.
  95.             Befindet man sich im Projektmodus, so wird auch
  96.             auf dem Backupmedium ein Projektverzeichnis erzeugt
  97.             wenn dort kein entsprechenes existiert.
  98.  
  99. Load Opt
  100. Save Opt  - Lädt oder speichert die aktuellen Parameter in der
  101.             Datei m2Maker.par.
  102. Clear     - Löscht die beiden oberen TextGadgets und setzt die
  103.             Optionen auf ihre Standartstellungen. Als Backup-
  104.             medium wird 'df1:' voreingestellt.
  105. New       - Um eine neue Datei zuerzeugen, die zu einem Projekt  
  106.             gehört, muß dieses Gadget angeklickt werden.
  107.             Dies kann man auch durch Eingeben eines neuen        
  108.             Dateinamens in das Editortextgadget erreichen.
  109. Mod       - Ruft das MODULETool auf.
  110. Delete    - Löscht die aktuelle Datei nach einer Sicherheitsab-
  111.             frage.
  112. Directory - Lädt das aktuelle Verzeichnis.
  113.  
  114.  
  115. Die Textgadgets lassen sich durch anklicken beliebig verändern.
  116.  
  117. Im oberen Textgadget befindet sich der Name des fertigen
  118. Programms, während im unteren der gleiche Name mit einer Endung
  119. (".mod",".def") steht, den der Editor benötigt.
  120.  
  121. In dem rot umrahmten Kasten befindet sich das Textgadget mit dem 
  122. Backuppfad und der Pfad zum aktuellen Projekt.
  123. Unter dem Inhaltsverzeichnis befindet sich das Textgadget,
  124. welches den aktuellen Pfad enthält.
  125. Um das Laufwerk zu ändern, muß hier der neue Pfad 
  126. eingetragen werden.
  127.  
  128. Inhaltsverzeichnis:
  129.  
  130. Durch Anklicken eines Namens wird diese Datei zur aktuellen
  131. erklärt und in den mittleren Textgadgets sichtbar.
  132. Unterverzeichnisse werden rot angezeigt.
  133. Klickt man diese an, so wird das jeweilige Unterverzeichnis
  134. geladen.
  135. In Unterverzeichnissen wird an oberster Stelle der Eintrag
  136. "PARENT\" hinzugefügt.
  137. Durch Anklicken kommt man wieder eine Verzeichnisebene höher.
  138. Die Daten werden, Verzeichnisse zuerst, alphabetisch sortiert
  139. angezeigt.
  140.  
  141. Durch Anklicken des rechten Proportionalgadgets oder der Pfeile
  142. kann man die verdeckten Einträge sichtbar machen.
  143.  
  144. Das Menü:
  145.  
  146. - Projekt
  147.         - Requester mit Copyright Vermerk.
  148.         - Option. sorgt für ein automatisches abspeichern vor    
  149.               jedem "Run".
  150.         - Speichert das gesamte Projektverzeichnis mit allen     
  151.           Unterverzeichnissen auf dem Backupmedium.
  152.         - Ruft ein neues CLI auf.
  153.         - Beendet das Programm.
  154.  
  155. - m2Maker
  156.         - Ruft den Editor auf.
  157.         - Ruft den Compiler auf.
  158.         - Ruft den Linker auf.
  159.         - Startet das fertige Programm.
  160.         - Startet die Make-Funktion.
  161.         - Compiliert alle Dateien die in der aktuellen Datei     
  162.           enthalten sind.
  163.  
  164.           Wenn die Reihenfolge der Dateinamen ihrer
  165.           Abhängigkeit voneinander entspricht, kann ein eventuell
  166.           auftetenes Schlüsselproblem (z.B. durch Änderung eines 
  167.           DefinitionsModules) gelöst werden.
  168.           Der Dateiname muß auf jeden Fall mit dem Index ".mke"
  169.           enden!
  170.  
  171. - Optionen
  172.         - Lädt Optionen.
  173.         - Lädt Parameter.
  174.         - Speichert Parameter.
  175.  
  176. - Dos
  177.         - Löscht die aktuelle Datei nach einer Sicherheits-      
  178.           abfrage.
  179.         - Datei umbenennen.
  180.  
  181. Nachdem der "m2Maker" ordnungsgemäß vom CLI mit "Run m2Maker"
  182. gestartet worden ist, werden die Parameter aus der Datei
  183. "m2Maker.par" gelesen, sofern diese vorhanden ist.
  184. Außerdem wird nach einer Datei mit dem Namen "m2Maker.exec"
  185. gesucht. Diese Datei wird nach dem Starten automatisch
  186. abgearbeitet.
  187. Diese Batchdatei ist dazu gedacht, automatisch die notwendige
  188. Programmierumgebung herzustellen, wie z.B. das Kopieren aller
  189. notwendigen Programme von einer Harddisk in die RAM-Disk.
  190.  
  191. An dieser Stelle sei darauf hingewiesen, daß das Programm mit
  192. Hilfe von IconX auch von der Workbench gestartet werden kann.
  193.  
  194.  
  195. Compiler und Linker arbeiten im Projektmodus nur mit Dateien, die
  196. sich in den entsprechenen Projektunterverzeichnissen befinden,
  197. während der Editor davon unabhängig arbeitet.
  198.  
  199. Die Auswahl der zu bearbeitenen Datei kann auch mit Hilfe der
  200. Cursortasten erfolgen. (Auswahl mit anschließendem Return)
  201.  
  202. ----------------------------------------------------------------
  203.  
  204.  
  205. MODULETool:
  206.  
  207. Das MODULETool ist ein Utilitie, welches automatisch
  208. Definitionsmodule erzeugt.
  209.  
  210. Davon ausgehend, das man zunächst ein Module zu Testzwecken
  211. normal entwickelt, um dies später in ein Implementations Module
  212. umzuwandeln, ist dieses Programm dazu gedacht, dies mit Hilfe
  213. eines Programm zu tun.
  214. Da bereits alle Informationen, die ein Definitions Module
  215. benötigt im Hauptmodule vorhanden sind, ist dies problemlos
  216. möglich.
  217.  
  218. Es werden alle Globalen Typen und Konstanten ins Definitions
  219. Module übertragen und die Prozedurköpfe herausgesucht.
  220. Außerdem ist es möglich die Importliste alphabetisch zu sortieren
  221. und von unnötigen Einträgen zu befreien.
  222.  
  223.  
  224.                      !!! Achtung !!!
  225.  
  226.  
  227. Es macht nur Sinn ein syntaktisch korrektes Programm zu
  228. bearbeiten. Außerdem dürfen keine lokalen Module in der Datei
  229. vorkommen.
  230.  
  231. Das Moduletool kann entweder von der Workbench oder vom CLI
  232. aufgerufen werden (vom m2Maker mit F8 oder Mod).
  233. Durch Anklicken einer Datei mit Hilfe der Shifttaste und des
  234. Moduletoolicons wird der Pfad automatisch erstellt, sonst muß er
  235. eingegeben werden. Vom CLI aus kann man den Dateinamen ebenfalls
  236. mitangeben.
  237.  
  238. Die Funktionen:
  239.  
  240. Speed:    Es werden die Compileroptionen zur Vermeidung des      
  241.           Prüfcodes gesetzt.
  242.  
  243. Kopf:     Es wird vor den Quelltext ein Kopf gesetzt, der Datum  
  244.           und Uhrzeit enthält.
  245.  
  246. Block:    Die Importelemente werden ganzzeilig unter den         
  247.           Importnamen gesetzt, sonst richtet sich die Ausrichtung
  248.           nach der Länge des längsten Importnamens.
  249.  
  250. ausortieren : Unnötige Elemente werden aussortiert.
  251.               Da als Kriterium die Häufigkeit des Vorkommens     
  252.               ausschlaggebend ist, kommt es bei den Flagnamen    
  253.               vor, das sie aussortiert werden.
  254.  
  255.               Folgende Ausnahmebehandlung wird durchgeführt:
  256.  
  257.               Da die meisten Flagnamen auf "s" enden wird
  258.               überprüft ob ein Set gleichen Namens vorhanden ist
  259.               und dann nicht aussortiert.
  260.  
  261.               Beispiel: WindowFlags  => WindowFlagSet
  262.                         MemReqs      => MemReqSet
  263.  
  264.               Dadurch werden fast alle Systemflags richtig       
  265.               behandelt.
  266.  
  267.               Ausnahmen werden leider nicht erkannt.
  268.  
  269.               z.B.:
  270.               "Response" aus FileSystem => Set existiert nicht.
  271.               
  272.               Bei der Definition von eigenen Typen sollte daher
  273.               beachtet werden, daß die Typen auf "s" enden.
  274.  
  275. Leerzeile:    Sortiert unnötige Leerzeilen aus.
  276.  
  277. Backup:       Erstellt eine Sicherheitskopie unter dem Namen der 
  278.               Datei und hängt ein O an (wie m2Emacs).
  279.  
  280. DefMod:       Erstellt ein Definitions- und Implementationsmodul,
  281.               falls die Quelldatei ein normales Modul ist.
  282.  
  283. Außerdem werden aus der Quelldatei immer unnötige Leerzeichen
  284. entfernt.
  285.  
  286. Über das Menu kann man außerdem wählen,ob 
  287. das Doppelkreuz,die Tilde und das Undzeichen durch ihre
  288. Äquivalente ersetzt werden sollen oder nicht.
  289.  
  290. # => <>
  291. & => AND
  292. ~ => NOT
  293.  
  294.  
  295. ----------------------------------------------------------------
  296.  
  297. Fastlister:
  298.  
  299. Der Fastlister wird vom m2Maker initialisiert und läuft im
  300. Hintergrund. Es wird mit dem unter m2Maker ==> Optionen stehendem
  301. Verzeichnis gearbeitet. Durch drücken der Tastenkombination
  302. leftShift, CTRL, Help wird dieser aktiviert.
  303.  
  304. Zunächst werden alle Dateien die im angegebenen Verzeichnis
  305. liegen aufgelistet. Nach Eingabe der Dateinummer wird die Datei
  306. angezeigt.
  307. Mit Hilfe der Cursortasten ist das Durchblättern durch die Datei
  308. möglich. Mit "Return" verläßt man den Fastlister oder durch
  309. Drücken der Helptaste kommt man wieder zurück zur Auswahl. Diese
  310. kann man mit ESC verlassen.
  311.  
  312. Das Programm kann durch lShift, CTRL, ESC vorzeitigt beendet
  313. werden. Ansonsten wird es beim Beenden vom m2Maker automatisch
  314. gelöscht.
  315.  
  316. Das Programm ist dazu gedacht, ein häufiges verlassen des Editors
  317. zu vermeiden, nur um "mal schnell" nach einer bestimmten
  318. Definition in einer anderen Datei zu suchen.
  319.  
  320.  
  321. Viel Spaß beim Arbeiten mit dem m2Maker.
  322.                         
  323.                                               Thomas Stolze
  324.